// 商品详情业务
import {
    Weixin
} from '@/common/js/wx-jssdk.js';
export default {
    data() {
        return {
            skuId: 0,
            goodsId: 0,
            isIphoneX: false, //判断手机是否是iphoneX以上
            whetherCollection: 0,

            //是否开启预览，0：不开启，1：开启
            preview: 0,
            token: "",
            videoContext: '',

            // 媒体,图片,视频

            // 解决每个商品SKU图片数量不同时，无法切换到第一个，导致轮播图显示不出来
            swiperInterval: 1,
            swiperAutoplay: false,
            swiperCurrent: 1,
            switchMedia: 'img',

            //评价
            goodsEvaluate: [{
                member_headimg: '',
                member_name: '',
                content: '',
                images: [],
                create_time: 0,
                sku_name: ''
            }],
            evaluateConfig: {
                evaluate_audit: 1,
                evaluate_show: 0,
                evaluate_status: 1
            },

            // 是否可分享到好物圈
            goodsCircle: false,
            memberId: 0,
            service: null,
            shareUrl: '', // 分享链接
            source_member: 0, //分享人的id
            isCommunity: false, //社群弹窗

            poster: "-1", //海报
            posterMsg: "", //海报错误信息
            posterHeight: 0,
            posterParams: {}, //海报所需参数
            goodsRoute: '',
            posterApi: '',
            goodsAttrShow: false, // 商品属性是否展开

            //门店列表
            storeList: {
                data: [],
                page: 1,
                page_size: 10
            },
            isShowStore: false,
            latitude: null, // 纬度
            longitude: null, // 经度
            evaluateCount: 0, // 商品评论数量
            deliveryType: null, // 配送方式
            isVirtual: 0 //是否为虚拟商品
        }
    },
    created() {
        this.isIphoneX = this.$util.uniappIsIPhoneX();
        this.token = uni.getStorageSync('token');

        if (this.location) {
            this.latitude = this.location.latitude;
            this.longitude = this.location.longitude;
        } else {
            this.$util.getLocation();
        }
        this.getStoreData();
    },
    watch: {
        location: function(nVal) {
            if (nVal) {
                this.latitude = nVal.latitude;
                this.longitude = nVal.longitude;
                this.getStoreData();
            }
        }
    },
    methods: {
        init(params) {
            this.skuId = params.sku_id;
            this.goodsId = params.goods_id;
            this.preview = params.preview;
            this.source_member = params.source_member;
            this.whetherCollection = params.whetherCollection;
            this.posterParams = params.posterParams;

            this.shareUrl = params.shareUrl;
            this.memberId = params.memberId;
            this.goodsRoute = params.goodsRoute;
            this.posterApi = params.posterApi;
            this.isVirtual = params.isVirtual;
            this.deliveryType = params.deliveryType;
            this.evaluateConfig = params.evaluateConfig;

            if (this.evaluateConfig.evaluate_show == 1) {
                //商品评论
                this.getGoodsEvaluate(params.evaluateList);
                this.evaluateCount = params.evaluateCount;
            }

            for (let k in this.deliveryType) {
                if (k == 'store') {
                    this.isShowStore = true;
                }
            }

            this.getService();

            this.videoContext = uni.createVideoContext('goodsVideo');

            // #ifdef MP-WEIXIN
            this.goodsSyncToGoodsCircle();
            // #endif

        },
        swiperChange(e) {
            this.swiperCurrent = e.detail.current + 1;
        },

        //-------------------------------------服务-------------------------------------

        openMerchantsServicePopup() {
            this.$refs.merchantsServicePopup.open();
        },
        closeMerchantsServicePopup() {
            this.$refs.merchantsServicePopup.close();
        },

        //-------------------------------------门店列表-------------------------------------
        openStoreListPopup() {
            this.$refs.storeListPopup.open();
        },
        closeStoreListPopup() {
            this.$refs.storeListPopup.close();
        },
        getStoreData() {
            //门店列表
            let data = {
                page: this.storeList.page,
                page_size: this.storeList.page_size
            };
            if (this.latitude && this.longitude) {
                data.latitude = this.latitude;
                data.longitude = this.longitude;
            }
            this.$api.sendRequest({
                url: '/api/store/page',
                data: data,
                success: res => {
                    if (this.storeList.page == 1) this.storeList.data == [];
                    if (res.code >= 0 && res.data) {
                        this.storeList.data = this.storeList.data.concat(res.data.list);
                    } else {
                        this.$util.showToast({
                            title: res.message
                        });
                    }
                }
            });
        },
        selectStore(item) {
            this.$util.redirectTo('/pages_tool/store/detail', {
                store_id: item.store_id
            });
            this.closeStoreListPopup();
        },
        //-------------------------------------属性-------------------------------------

        switchGoodsAttr() {
            this.goodsAttrShow = !this.goodsAttrShow;
        },
        //-------------------------------------评价-------------------------------------
        //商品评论列表
        getGoodsEvaluate(list) {
            if (list) {
                this.goodsEvaluate = list;
                this.goodsEvaluate.forEach((item, index) => {
                    if (this.goodsEvaluate[index].images) this.goodsEvaluate[index].images =
                        this.goodsEvaluate[index].images.split(",");
                    if (this.goodsEvaluate[index].is_anonymous == 1) this.goodsEvaluate[
                            index].member_name = this.goodsEvaluate[index].member_name
                        .replace(
                            this.goodsEvaluate[index].member_name.substring(1, this
                                .goodsEvaluate[index].member_name.length - 1), '***')
                })
                // if (this.goodsEvaluate.images) this.goodsEvaluate.images = this.goodsEvaluate.images.split(",");
                // if (this.goodsEvaluate.is_anonymous == 1) this.goodsEvaluate.member_name = this.goodsEvaluate.member_name.replace(
                // this.goodsEvaluate.member_name.substring(1, this.goodsEvaluate.member_name.length - 1), '***')
            }
        },
        // 预览评价图片
        previewEvaluate(index, img_index, field) {
            var paths = [];
            for (let i = 0; i < this.goodsEvaluate[index][field].length; i++) {
                paths.push(this.$util.img(this.goodsEvaluate[index][field][i]));
            }
            uni.previewImage({
                current: img_index,
                urls: paths
            });
        },
        //-------------------------------------关注-------------------------------------
        async collection() {
            if (this.preview) return; // 开启预览，禁止任何操作和跳转

            if (this.token) {

                //未关注添加关注
                if (this.whetherCollection == 0) {
                    let res = await this.$api.sendRequest({
                        url: "/api/goodscollect/add",
                        data: {
                            sku_id: this.skuId,
                            goods_id: this.goodsSkuDetail.goods_id,
                            sku_name: this.goodsSkuDetail.sku_name,
                            sku_price: this.goodsSkuDetail.show_price,
                            sku_image: this.goodsSkuDetail.sku_image
                        },
                        async: false,
                    });
                    var data = res.data;
                    if (data > 0) {
                        this.whetherCollection = 1;
                    }
                } else {
                    //已关注取消关注
                    let res = await this.$api.sendRequest({
                        url: "/api/goodscollect/delete",
                        data: {
                            goods_id: this.goodsSkuDetail.goods_id
                        },
                        async: false,
                    });
                    var data = res.data;
                    if (data > 0) {
                        this.whetherCollection = 0;
                    }
                }
                return this.whetherCollection;
            } else {
                if (this.source_member) {
                    this.$refs.login.open(this.shareUrl + '&source_member=' + this.source_member);
                } else {
                    this.$refs.login.open(this.shareUrl);
                }
            }
        },
        //-------------------------------------分享-------------------------------------
        // 打开分享弹出层
        openSharePopup() {
            this.$refs.sharePopup.open();
        },
        // 关闭分享弹出层
        closeSharePopup() {
            this.$refs.sharePopup.close();
        },
        copyUrl() {
            let text = this.$config.h5Domain + this.shareUrl;
            if (this.memberId) text += '&source_member=' + this.memberId;
            this.$util.copy(text, () => {
                this.closeSharePopup();
            });
        },

        //-------------------------------------海报-------------------------------------
        // 打开海报弹出层
        openPosterPopup() {
            this.getGoodsPoster();
            this.$refs.sharePopup.close();
        },
        // 关闭海报弹出层
        closePosterPopup() {
            this.$refs.posterPopup.close();
            this.poster = ''
        },
        //生成海报
        getGoodsPoster() {
            uni.showLoading({
                'title': '海报生成中...'
            })
            //活动海报信息
            if (this.memberId) this.posterParams.source_member = this.memberId;

            this.$api.sendRequest({
                url: this.posterApi,
                data: {
                    page: this.goodsRoute,
                    qrcode_param: JSON.stringify(this.posterParams)
                },
                success: res => {
                    if (res.code == 0) {
                        this.$refs.posterPopup.open();
                        this.poster = res.data.path + "?time=" + new Date().getTime();
                    } else {
                        this.posterMsg = res.message;
                        this.$util.showToast({title: res.message})
                    }
                    uni.hideLoading();
                },
                fail: err => {
                    uni.hideLoading();
                }
            });
        },
        // 预览图片
        previewMedia(index) {
            var paths = [];
            for (let i = 0; i < this.goodsSkuDetail.sku_images.length; i++) {
                paths.push(this.$util.img(this.goodsSkuDetail.sku_images[i], {
                    size: 'big'
                }));
            }
            uni.previewImage({
                current: index,
                urls: paths,
                // longPressActions: {
                // 	itemList: ['发送给朋友', '保存图片', '关注'],
                // 	success: function(data) {
                // 		console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
                // 	},
                // 	fail: function(err) {
                // 		console.log(err.errMsg);
                // 	}
                // }
            });
        },
        swiperImageError(index) {
            this.goodsSkuDetail.sku_images[index] = this.$util.getDefaultImage().goods;
            this.$forceUpdate();
        },
        // #ifdef MP || APP-PLUS
        //小程序中保存海报
        saveGoodsPoster() {
            let url = this.$util.img(this.poster);
            uni.downloadFile({
                url: url,
                success: (res) => {
                    if (res.errMsg == "downloadFile:ok") {
                        uni.saveImageToPhotosAlbum({
                            filePath: res.tempFilePath,
                            success: () => {
                                this.$util.showToast({
                                    title: "保存成功"
                                });
                            },
                            fail: () => {
                                this.$util.showToast({
                                    title: "保存失败，请稍后重试"
                                });
                            }
                        });
                    }
                },
                fail:(err)=> {
                    this.$util.showToast({
                        title: "保存失败，请稍后重试"
                    });
                }
            });
        },
        // #endif
        //售后保障查询
        getService() {
            this.$api.sendRequest({
                url: '/api/goods/aftersale',
                success: res => {
                    if (res.code == 0 && res.data) {
                        this.service = res.data;
                    }
                }
            });
        },

        // #ifdef MP-WEIXIN
        /**
         *	将商品同步到微信圈子 
         */
        goodsSyncToGoodsCircle() {
            this.$api.sendRequest({
                url: '/goodscircle/api/goods/sync',
                data: {
                    goods_id: this.goodsSkuDetail.goods_id
                },
                success: res => {
                    if (res.code == 0) {
                        this.goodsCircle = true;
                    }
                }
            })
        },
        /**
         * 将商品推荐到微信圈子
         */
        openBusinessView() {
            if (wx.openBusinessView) {
                wx.openBusinessView({
                    businessType: 'friendGoodsRecommend',
                    extraData: {
                        product: {
                            item_code: this.goodsSkuDetail.goods_id,
                            title: this.goodsSkuDetail.sku_name,
                            image_list: this.goodsSkuDetail.sku_images.map((ele) => {
                                return this.$util.img(ele);
                            })
                        }
                    },
                    success: function(res) {
                        console.log('success', res);
                    },
                    fail: function(res) {
                        console.log('fail', res);
                    }
                })
            }
        },
        // #endif
        toEvaluateDetail(id) {
            this.$util.redirectTo('/pages_tool/goods/evaluate', {
                goods_id: id
            });
        },
        showImg(e) {
            //拿到图片的路径里面的内容放在我们数组中
            let contentimg = e.target.dataset.nodes;
            let arrImg = [];
            for (var i = 0; i < contentimg.length; i++) {
                var img = contentimg[i].children;
                if (Array.isArray(img)) {
                    for (var j = 0; j < img.length; j++) {
                        if (img[j].attrs && img[j].name == "img") {
                            if (img[j].attrs.src) {
                                arrImg.push(img[j].attrs.src)
                            }
                        }
                    }
                }
            }
            //最后一步就是把我们的所有图片放在预览的api中就可以了
            uni.previewImage({
                current: arrImg,
                urls: arrImg,
            })
        },

        //-------------------------------------社群-------------------------------------

        //添加福利群
        onCommunity() {
            this.isCommunity = true
        },
        onCloseCommunity() {
            this.isCommunity = false
        },

    }

}